Das Thema Datentypen unterscheidet einfache und zusammengesetzte Datentypen, die sich aus Werten einfacher Datentypen zusammensetzen.
Sind die folgenden Datentypen einfach oder zusammengesetzt?
Ganzzahlen
Zeichenketten
Daten
Wahrheitswerte.
Wir betrachten im folgenden die zusammengesetzten Datentypen Satz und Datenfeld.
Ein Satz (engl. record) ist eine Struktur aus Werten verschiedener Datentypen. Der folgende Mitarbeitersatz setzt sich zum Beispiel aus verschiedenen nummerischen und symbolischen Elementen zusammen:
137221
Fritz Meier
Bahnhofstrasse 25
9000 St. Gallen
071/223 90 85
01.8.98
In VBA lautet die entsprechende Vereinbarung:
Type Mitarbeiter Personalnummer As Integer Name As String Strasse As String Ort As String Telefon As String Einstellungsdatum As Date End Type
Sätze, insbesondere die Zeilen einer Datenbanktabelle, sind meist heterogen zusammengesetzt und befinden sich auf einem Externspeicher. Im folgenden beschäftigen wir uns nur mit einer homogen zusammengesetzten Datenstruktur des Internspeichers, dem Datenfeld (engl. array). Ein Datenfeld besteht aus beliebig vielen Werten des gleichen Datentyps. Das folgende Datenfeld enthält zum Beispiel die Punktetotale von fünf Fussballmannschaften:
|
22 |
16 |
28 |
6 |
32 |
Oft setzt man die Elemente einer Datenfeldkonstante zwischen eckige Klammern: [22, 16, 28, 6, 32].
Eine Datenfeldvariable besteht aus Speicherzellen des gleichen Datentyps, auf die unter dem gleichen Namen, aber verschiedenen Indizes - oben zum Beispiel die Zahlen 1 bis 5 - zugegriffen werden kann. Meist ändert sich die Grösse eines Datenfelds zur Laufzeit nicht. Wir vereinbaren deshalb eine untere und eine obere Grenze, welche den Laufbereich des Index begrenzen:
| Name | Läufer(1) | Läufer(2) | Läufer(3) | Läufer(4) |
Läufer(5) |
| Inhalt | Anna | Bruno | Dora | Franz | Karin |
Name der Datenfeldvariable: Läufer
Grösse (Dimension): 5
Untergrenze: 1
Obergrenze: 5
Name und Index kennzeichnen jedes Element eindeutig. Läufer(2) bezeichnet zum Beispiel den zweiten Läufer. Jede Zelle gehört zum gleichen Datentyp. Der Array Läufer darf zum Beispiel nur Zeichenketten (engl. strings) aufnehmen. Ein Datenfeld hat folgende Vorteile:
Es lässt sich sowohl ganz als auch elementweise verarbeiten
Die Indizierung erlaubt die einfache Verarbeitung aller Elemente in einer Schleife.
Das Datenfeld Läufer wird wie folgt vereinbart:
Dim Läufer ( 1 To 5 ) As String
Allgemeiner lautet die Syntax einer Datenfeldvereinbarung:
Dim <Datenfeldname> ( <Untergrenze> To <Obergrenze> ) As <Datentyp>
Statt Dim kann auch Private oder Public stehen (vgl. Fallbeispiel Gewinnverteilung). Der Zugriff auf ein Datenfeld ist lesend oder schreibend. Die folgende Anweisung liest zum Beispiel den Inhalt der fünften Zelle von Läufer und weist ihn der Variablen Tmp zu:
Dim Tmp As String Tmp = Läufer(5)
Ebenso einfach ist die Fortschreibung eines Zellinhalts. Die folgende Anweisung ändert den Inhalt der fünften Zelle durch Pauline:
Läufer(5) = "Pauline"
Die Indizierung erlaubt die einfache Zusammenfassung mehrerer Lese- oder Schreiboperationen: Die folgende Zählschleife weist zum Beispiel allen Zellen den Inhalt Fritz zu:
Dim Läufer(1 To 5) As String Dim i As Integer For i = 1 To 5 Läufer(i) = “Fritz” Next i
Die Zählschleife eignet sich besonders gut für das Durchlaufen eines Datenfelds. Verglichen mit der bereits eingeführten Schleife mit Ausführungsbedingung (While) erspart sie der Programmiererin die explizite Initialisierung, Prüfung und Erhöhung einer Indexvariable. Die Syntax der Zählschleife lässt sich wie folgt verallgemeinern:
Dim Index As Integer
For Index = <Untergrenze> To <Obergrenze>
<Anweisungen>
Next